package com.sphd.emanu.pojo.goods;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TPdBaseExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TPdBaseExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andInnerSnIsNull() {
            addCriterion("inner_sn is null");
            return (Criteria) this;
        }

        public Criteria andInnerSnIsNotNull() {
            addCriterion("inner_sn is not null");
            return (Criteria) this;
        }

        public Criteria andInnerSnEqualTo(String value) {
            addCriterion("inner_sn =", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnNotEqualTo(String value) {
            addCriterion("inner_sn <>", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnGreaterThan(String value) {
            addCriterion("inner_sn >", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnGreaterThanOrEqualTo(String value) {
            addCriterion("inner_sn >=", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnLessThan(String value) {
            addCriterion("inner_sn <", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnLessThanOrEqualTo(String value) {
            addCriterion("inner_sn <=", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnLike(String value) {
            addCriterion("inner_sn like", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnNotLike(String value) {
            addCriterion("inner_sn not like", value, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnIn(List<String> values) {
            addCriterion("inner_sn in", values, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnNotIn(List<String> values) {
            addCriterion("inner_sn not in", values, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnBetween(String value1, String value2) {
            addCriterion("inner_sn between", value1, value2, "innerSn");
            return (Criteria) this;
        }

        public Criteria andInnerSnNotBetween(String value1, String value2) {
            addCriterion("inner_sn not between", value1, value2, "innerSn");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andStickIsNull() {
            addCriterion("stick is null");
            return (Criteria) this;
        }

        public Criteria andStickIsNotNull() {
            addCriterion("stick is not null");
            return (Criteria) this;
        }

        public Criteria andStickEqualTo(Boolean value) {
            addCriterion("stick =", value, "stick");
            return (Criteria) this;
        }

        public Criteria andStickNotEqualTo(Boolean value) {
            addCriterion("stick <>", value, "stick");
            return (Criteria) this;
        }

        public Criteria andStickGreaterThan(Boolean value) {
            addCriterion("stick >", value, "stick");
            return (Criteria) this;
        }

        public Criteria andStickGreaterThanOrEqualTo(Boolean value) {
            addCriterion("stick >=", value, "stick");
            return (Criteria) this;
        }

        public Criteria andStickLessThan(Boolean value) {
            addCriterion("stick <", value, "stick");
            return (Criteria) this;
        }

        public Criteria andStickLessThanOrEqualTo(Boolean value) {
            addCriterion("stick <=", value, "stick");
            return (Criteria) this;
        }

        public Criteria andStickIn(List<Boolean> values) {
            addCriterion("stick in", values, "stick");
            return (Criteria) this;
        }

        public Criteria andStickNotIn(List<Boolean> values) {
            addCriterion("stick not in", values, "stick");
            return (Criteria) this;
        }

        public Criteria andStickBetween(Boolean value1, Boolean value2) {
            addCriterion("stick between", value1, value2, "stick");
            return (Criteria) this;
        }

        public Criteria andStickNotBetween(Boolean value1, Boolean value2) {
            addCriterion("stick not between", value1, value2, "stick");
            return (Criteria) this;
        }

        public Criteria andCodeIsNull() {
            addCriterion("code is null");
            return (Criteria) this;
        }

        public Criteria andCodeIsNotNull() {
            addCriterion("code is not null");
            return (Criteria) this;
        }

        public Criteria andCodeEqualTo(String value) {
            addCriterion("code =", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotEqualTo(String value) {
            addCriterion("code <>", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThan(String value) {
            addCriterion("code >", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThanOrEqualTo(String value) {
            addCriterion("code >=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThan(String value) {
            addCriterion("code <", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThanOrEqualTo(String value) {
            addCriterion("code <=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLike(String value) {
            addCriterion("code like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotLike(String value) {
            addCriterion("code not like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeIn(List<String> values) {
            addCriterion("code in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotIn(List<String> values) {
            addCriterion("code not in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeBetween(String value1, String value2) {
            addCriterion("code between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotBetween(String value1, String value2) {
            addCriterion("code not between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(String value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(String value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(String value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(String value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(String value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(String value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLike(String value) {
            addCriterion("type like", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotLike(String value) {
            addCriterion("type not like", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<String> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<String> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(String value1, String value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(String value1, String value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andSourceIsNull() {
            addCriterion("source is null");
            return (Criteria) this;
        }

        public Criteria andSourceIsNotNull() {
            addCriterion("source is not null");
            return (Criteria) this;
        }

        public Criteria andSourceEqualTo(String value) {
            addCriterion("source =", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceNotEqualTo(String value) {
            addCriterion("source <>", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceGreaterThan(String value) {
            addCriterion("source >", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceGreaterThanOrEqualTo(String value) {
            addCriterion("source >=", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceLessThan(String value) {
            addCriterion("source <", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceLessThanOrEqualTo(String value) {
            addCriterion("source <=", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceLike(String value) {
            addCriterion("source like", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceNotLike(String value) {
            addCriterion("source not like", value, "source");
            return (Criteria) this;
        }

        public Criteria andSourceIn(List<String> values) {
            addCriterion("source in", values, "source");
            return (Criteria) this;
        }

        public Criteria andSourceNotIn(List<String> values) {
            addCriterion("source not in", values, "source");
            return (Criteria) this;
        }

        public Criteria andSourceBetween(String value1, String value2) {
            addCriterion("source between", value1, value2, "source");
            return (Criteria) this;
        }

        public Criteria andSourceNotBetween(String value1, String value2) {
            addCriterion("source not between", value1, value2, "source");
            return (Criteria) this;
        }

        public Criteria andCompositionIsNull() {
            addCriterion("composition is null");
            return (Criteria) this;
        }

        public Criteria andCompositionIsNotNull() {
            addCriterion("composition is not null");
            return (Criteria) this;
        }

        public Criteria andCompositionEqualTo(String value) {
            addCriterion("composition =", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionNotEqualTo(String value) {
            addCriterion("composition <>", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionGreaterThan(String value) {
            addCriterion("composition >", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionGreaterThanOrEqualTo(String value) {
            addCriterion("composition >=", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionLessThan(String value) {
            addCriterion("composition <", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionLessThanOrEqualTo(String value) {
            addCriterion("composition <=", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionLike(String value) {
            addCriterion("composition like", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionNotLike(String value) {
            addCriterion("composition not like", value, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionIn(List<String> values) {
            addCriterion("composition in", values, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionNotIn(List<String> values) {
            addCriterion("composition not in", values, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionBetween(String value1, String value2) {
            addCriterion("composition between", value1, value2, "composition");
            return (Criteria) this;
        }

        public Criteria andCompositionNotBetween(String value1, String value2) {
            addCriterion("composition not between", value1, value2, "composition");
            return (Criteria) this;
        }

        public Criteria andModelIsNull() {
            addCriterion("model is null");
            return (Criteria) this;
        }

        public Criteria andModelIsNotNull() {
            addCriterion("model is not null");
            return (Criteria) this;
        }

        public Criteria andModelEqualTo(String value) {
            addCriterion("model =", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelNotEqualTo(String value) {
            addCriterion("model <>", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelGreaterThan(String value) {
            addCriterion("model >", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelGreaterThanOrEqualTo(String value) {
            addCriterion("model >=", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelLessThan(String value) {
            addCriterion("model <", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelLessThanOrEqualTo(String value) {
            addCriterion("model <=", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelLike(String value) {
            addCriterion("model like", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelNotLike(String value) {
            addCriterion("model not like", value, "model");
            return (Criteria) this;
        }

        public Criteria andModelIn(List<String> values) {
            addCriterion("model in", values, "model");
            return (Criteria) this;
        }

        public Criteria andModelNotIn(List<String> values) {
            addCriterion("model not in", values, "model");
            return (Criteria) this;
        }

        public Criteria andModelBetween(String value1, String value2) {
            addCriterion("model between", value1, value2, "model");
            return (Criteria) this;
        }

        public Criteria andModelNotBetween(String value1, String value2) {
            addCriterion("model not between", value1, value2, "model");
            return (Criteria) this;
        }

        public Criteria andSpecificationsIsNull() {
            addCriterion("specifications is null");
            return (Criteria) this;
        }

        public Criteria andSpecificationsIsNotNull() {
            addCriterion("specifications is not null");
            return (Criteria) this;
        }

        public Criteria andSpecificationsEqualTo(String value) {
            addCriterion("specifications =", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsNotEqualTo(String value) {
            addCriterion("specifications <>", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsGreaterThan(String value) {
            addCriterion("specifications >", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsGreaterThanOrEqualTo(String value) {
            addCriterion("specifications >=", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsLessThan(String value) {
            addCriterion("specifications <", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsLessThanOrEqualTo(String value) {
            addCriterion("specifications <=", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsLike(String value) {
            addCriterion("specifications like", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsNotLike(String value) {
            addCriterion("specifications not like", value, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsIn(List<String> values) {
            addCriterion("specifications in", values, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsNotIn(List<String> values) {
            addCriterion("specifications not in", values, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsBetween(String value1, String value2) {
            addCriterion("specifications between", value1, value2, "specifications");
            return (Criteria) this;
        }

        public Criteria andSpecificationsNotBetween(String value1, String value2) {
            addCriterion("specifications not between", value1, value2, "specifications");
            return (Criteria) this;
        }

        public Criteria andMemoIsNull() {
            addCriterion("memo is null");
            return (Criteria) this;
        }

        public Criteria andMemoIsNotNull() {
            addCriterion("memo is not null");
            return (Criteria) this;
        }

        public Criteria andMemoEqualTo(String value) {
            addCriterion("memo =", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotEqualTo(String value) {
            addCriterion("memo <>", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoGreaterThan(String value) {
            addCriterion("memo >", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoGreaterThanOrEqualTo(String value) {
            addCriterion("memo >=", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoLessThan(String value) {
            addCriterion("memo <", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoLessThanOrEqualTo(String value) {
            addCriterion("memo <=", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoLike(String value) {
            addCriterion("memo like", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotLike(String value) {
            addCriterion("memo not like", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoIn(List<String> values) {
            addCriterion("memo in", values, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotIn(List<String> values) {
            addCriterion("memo not in", values, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoBetween(String value1, String value2) {
            addCriterion("memo between", value1, value2, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotBetween(String value1, String value2) {
            addCriterion("memo not between", value1, value2, "memo");
            return (Criteria) this;
        }

        public Criteria andUnitPriceIsNull() {
            addCriterion("unit_price is null");
            return (Criteria) this;
        }

        public Criteria andUnitPriceIsNotNull() {
            addCriterion("unit_price is not null");
            return (Criteria) this;
        }

        public Criteria andUnitPriceEqualTo(BigDecimal value) {
            addCriterion("unit_price =", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceNotEqualTo(BigDecimal value) {
            addCriterion("unit_price <>", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceGreaterThan(BigDecimal value) {
            addCriterion("unit_price >", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("unit_price >=", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceLessThan(BigDecimal value) {
            addCriterion("unit_price <", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("unit_price <=", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceIn(List<BigDecimal> values) {
            addCriterion("unit_price in", values, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceNotIn(List<BigDecimal> values) {
            addCriterion("unit_price not in", values, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unit_price between", value1, value2, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unit_price not between", value1, value2, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitIsNull() {
            addCriterion("unit is null");
            return (Criteria) this;
        }

        public Criteria andUnitIsNotNull() {
            addCriterion("unit is not null");
            return (Criteria) this;
        }

        public Criteria andUnitEqualTo(String value) {
            addCriterion("unit =", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotEqualTo(String value) {
            addCriterion("unit <>", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitGreaterThan(String value) {
            addCriterion("unit >", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitGreaterThanOrEqualTo(String value) {
            addCriterion("unit >=", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLessThan(String value) {
            addCriterion("unit <", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLessThanOrEqualTo(String value) {
            addCriterion("unit <=", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLike(String value) {
            addCriterion("unit like", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotLike(String value) {
            addCriterion("unit not like", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitIn(List<String> values) {
            addCriterion("unit in", values, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotIn(List<String> values) {
            addCriterion("unit not in", values, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitBetween(String value1, String value2) {
            addCriterion("unit between", value1, value2, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotBetween(String value1, String value2) {
            addCriterion("unit not between", value1, value2, "unit");
            return (Criteria) this;
        }

        public Criteria andNetWeightIsNull() {
            addCriterion("net_weight is null");
            return (Criteria) this;
        }

        public Criteria andNetWeightIsNotNull() {
            addCriterion("net_weight is not null");
            return (Criteria) this;
        }

        public Criteria andNetWeightEqualTo(BigDecimal value) {
            addCriterion("net_weight =", value, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightNotEqualTo(BigDecimal value) {
            addCriterion("net_weight <>", value, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightGreaterThan(BigDecimal value) {
            addCriterion("net_weight >", value, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("net_weight >=", value, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightLessThan(BigDecimal value) {
            addCriterion("net_weight <", value, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightLessThanOrEqualTo(BigDecimal value) {
            addCriterion("net_weight <=", value, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightIn(List<BigDecimal> values) {
            addCriterion("net_weight in", values, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightNotIn(List<BigDecimal> values) {
            addCriterion("net_weight not in", values, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("net_weight between", value1, value2, "netWeight");
            return (Criteria) this;
        }

        public Criteria andNetWeightNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("net_weight not between", value1, value2, "netWeight");
            return (Criteria) this;
        }

        public Criteria andReserveStockIsNull() {
            addCriterion("reserve_stock is null");
            return (Criteria) this;
        }

        public Criteria andReserveStockIsNotNull() {
            addCriterion("reserve_stock is not null");
            return (Criteria) this;
        }

        public Criteria andReserveStockEqualTo(Long value) {
            addCriterion("reserve_stock =", value, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockNotEqualTo(Long value) {
            addCriterion("reserve_stock <>", value, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockGreaterThan(Long value) {
            addCriterion("reserve_stock >", value, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockGreaterThanOrEqualTo(Long value) {
            addCriterion("reserve_stock >=", value, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockLessThan(Long value) {
            addCriterion("reserve_stock <", value, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockLessThanOrEqualTo(Long value) {
            addCriterion("reserve_stock <=", value, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockIn(List<Long> values) {
            addCriterion("reserve_stock in", values, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockNotIn(List<Long> values) {
            addCriterion("reserve_stock not in", values, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockBetween(Long value1, Long value2) {
            addCriterion("reserve_stock between", value1, value2, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andReserveStockNotBetween(Long value1, Long value2) {
            addCriterion("reserve_stock not between", value1, value2, "reserveStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockIsNull() {
            addCriterion("minimumi_stock is null");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockIsNotNull() {
            addCriterion("minimumi_stock is not null");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockEqualTo(Long value) {
            addCriterion("minimumi_stock =", value, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockNotEqualTo(Long value) {
            addCriterion("minimumi_stock <>", value, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockGreaterThan(Long value) {
            addCriterion("minimumi_stock >", value, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockGreaterThanOrEqualTo(Long value) {
            addCriterion("minimumi_stock >=", value, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockLessThan(Long value) {
            addCriterion("minimumi_stock <", value, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockLessThanOrEqualTo(Long value) {
            addCriterion("minimumi_stock <=", value, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockIn(List<Long> values) {
            addCriterion("minimumi_stock in", values, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockNotIn(List<Long> values) {
            addCriterion("minimumi_stock not in", values, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockBetween(Long value1, Long value2) {
            addCriterion("minimumi_stock between", value1, value2, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andMinimumiStockNotBetween(Long value1, Long value2) {
            addCriterion("minimumi_stock not between", value1, value2, "minimumiStock");
            return (Criteria) this;
        }

        public Criteria andDiscountableIsNull() {
            addCriterion("discountable is null");
            return (Criteria) this;
        }

        public Criteria andDiscountableIsNotNull() {
            addCriterion("discountable is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountableEqualTo(Boolean value) {
            addCriterion("discountable =", value, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableNotEqualTo(Boolean value) {
            addCriterion("discountable <>", value, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableGreaterThan(Boolean value) {
            addCriterion("discountable >", value, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableGreaterThanOrEqualTo(Boolean value) {
            addCriterion("discountable >=", value, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableLessThan(Boolean value) {
            addCriterion("discountable <", value, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableLessThanOrEqualTo(Boolean value) {
            addCriterion("discountable <=", value, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableIn(List<Boolean> values) {
            addCriterion("discountable in", values, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableNotIn(List<Boolean> values) {
            addCriterion("discountable not in", values, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableBetween(Boolean value1, Boolean value2) {
            addCriterion("discountable between", value1, value2, "discountable");
            return (Criteria) this;
        }

        public Criteria andDiscountableNotBetween(Boolean value1, Boolean value2) {
            addCriterion("discountable not between", value1, value2, "discountable");
            return (Criteria) this;
        }

        public Criteria andShelvedIsNull() {
            addCriterion("shelved is null");
            return (Criteria) this;
        }

        public Criteria andShelvedIsNotNull() {
            addCriterion("shelved is not null");
            return (Criteria) this;
        }

        public Criteria andShelvedEqualTo(Boolean value) {
            addCriterion("shelved =", value, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedNotEqualTo(Boolean value) {
            addCriterion("shelved <>", value, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedGreaterThan(Boolean value) {
            addCriterion("shelved >", value, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedGreaterThanOrEqualTo(Boolean value) {
            addCriterion("shelved >=", value, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedLessThan(Boolean value) {
            addCriterion("shelved <", value, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedLessThanOrEqualTo(Boolean value) {
            addCriterion("shelved <=", value, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedIn(List<Boolean> values) {
            addCriterion("shelved in", values, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedNotIn(List<Boolean> values) {
            addCriterion("shelved not in", values, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedBetween(Boolean value1, Boolean value2) {
            addCriterion("shelved between", value1, value2, "shelved");
            return (Criteria) this;
        }

        public Criteria andShelvedNotBetween(Boolean value1, Boolean value2) {
            addCriterion("shelved not between", value1, value2, "shelved");
            return (Criteria) this;
        }

        public Criteria andPointsIsNull() {
            addCriterion("points is null");
            return (Criteria) this;
        }

        public Criteria andPointsIsNotNull() {
            addCriterion("points is not null");
            return (Criteria) this;
        }

        public Criteria andPointsEqualTo(Long value) {
            addCriterion("points =", value, "points");
            return (Criteria) this;
        }

        public Criteria andPointsNotEqualTo(Long value) {
            addCriterion("points <>", value, "points");
            return (Criteria) this;
        }

        public Criteria andPointsGreaterThan(Long value) {
            addCriterion("points >", value, "points");
            return (Criteria) this;
        }

        public Criteria andPointsGreaterThanOrEqualTo(Long value) {
            addCriterion("points >=", value, "points");
            return (Criteria) this;
        }

        public Criteria andPointsLessThan(Long value) {
            addCriterion("points <", value, "points");
            return (Criteria) this;
        }

        public Criteria andPointsLessThanOrEqualTo(Long value) {
            addCriterion("points <=", value, "points");
            return (Criteria) this;
        }

        public Criteria andPointsIn(List<Long> values) {
            addCriterion("points in", values, "points");
            return (Criteria) this;
        }

        public Criteria andPointsNotIn(List<Long> values) {
            addCriterion("points not in", values, "points");
            return (Criteria) this;
        }

        public Criteria andPointsBetween(Long value1, Long value2) {
            addCriterion("points between", value1, value2, "points");
            return (Criteria) this;
        }

        public Criteria andPointsNotBetween(Long value1, Long value2) {
            addCriterion("points not between", value1, value2, "points");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoIsNull() {
            addCriterion("composition_memo is null");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoIsNotNull() {
            addCriterion("composition_memo is not null");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoEqualTo(String value) {
            addCriterion("composition_memo =", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoNotEqualTo(String value) {
            addCriterion("composition_memo <>", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoGreaterThan(String value) {
            addCriterion("composition_memo >", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoGreaterThanOrEqualTo(String value) {
            addCriterion("composition_memo >=", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoLessThan(String value) {
            addCriterion("composition_memo <", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoLessThanOrEqualTo(String value) {
            addCriterion("composition_memo <=", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoLike(String value) {
            addCriterion("composition_memo like", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoNotLike(String value) {
            addCriterion("composition_memo not like", value, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoIn(List<String> values) {
            addCriterion("composition_memo in", values, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoNotIn(List<String> values) {
            addCriterion("composition_memo not in", values, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoBetween(String value1, String value2) {
            addCriterion("composition_memo between", value1, value2, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCompositionMemoNotBetween(String value1, String value2) {
            addCriterion("composition_memo not between", value1, value2, "compositionMemo");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNull() {
            addCriterion("creator is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNotNull() {
            addCriterion("creator is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorEqualTo(Integer value) {
            addCriterion("creator =", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotEqualTo(Integer value) {
            addCriterion("creator <>", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThan(Integer value) {
            addCriterion("creator >", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThanOrEqualTo(Integer value) {
            addCriterion("creator >=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThan(Integer value) {
            addCriterion("creator <", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThanOrEqualTo(Integer value) {
            addCriterion("creator <=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorIn(List<Integer> values) {
            addCriterion("creator in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotIn(List<Integer> values) {
            addCriterion("creator not in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorBetween(Integer value1, Integer value2) {
            addCriterion("creator between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotBetween(Integer value1, Integer value2) {
            addCriterion("creator not between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreateNameIsNull() {
            addCriterion("create_name is null");
            return (Criteria) this;
        }

        public Criteria andCreateNameIsNotNull() {
            addCriterion("create_name is not null");
            return (Criteria) this;
        }

        public Criteria andCreateNameEqualTo(String value) {
            addCriterion("create_name =", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameNotEqualTo(String value) {
            addCriterion("create_name <>", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameGreaterThan(String value) {
            addCriterion("create_name >", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameGreaterThanOrEqualTo(String value) {
            addCriterion("create_name >=", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameLessThan(String value) {
            addCriterion("create_name <", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameLessThanOrEqualTo(String value) {
            addCriterion("create_name <=", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameLike(String value) {
            addCriterion("create_name like", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameNotLike(String value) {
            addCriterion("create_name not like", value, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameIn(List<String> values) {
            addCriterion("create_name in", values, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameNotIn(List<String> values) {
            addCriterion("create_name not in", values, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameBetween(String value1, String value2) {
            addCriterion("create_name between", value1, value2, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateNameNotBetween(String value1, String value2) {
            addCriterion("create_name not between", value1, value2, "createName");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("create_date is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("create_date is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(Date value) {
            addCriterion("create_date =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(Date value) {
            addCriterion("create_date <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(Date value) {
            addCriterion("create_date >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("create_date >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(Date value) {
            addCriterion("create_date <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(Date value) {
            addCriterion("create_date <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<Date> values) {
            addCriterion("create_date in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<Date> values) {
            addCriterion("create_date not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(Date value1, Date value2) {
            addCriterion("create_date between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(Date value1, Date value2) {
            addCriterion("create_date not between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andUpdatorIsNull() {
            addCriterion("updator is null");
            return (Criteria) this;
        }

        public Criteria andUpdatorIsNotNull() {
            addCriterion("updator is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatorEqualTo(Integer value) {
            addCriterion("updator =", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotEqualTo(Integer value) {
            addCriterion("updator <>", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorGreaterThan(Integer value) {
            addCriterion("updator >", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorGreaterThanOrEqualTo(Integer value) {
            addCriterion("updator >=", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLessThan(Integer value) {
            addCriterion("updator <", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLessThanOrEqualTo(Integer value) {
            addCriterion("updator <=", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorIn(List<Integer> values) {
            addCriterion("updator in", values, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotIn(List<Integer> values) {
            addCriterion("updator not in", values, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorBetween(Integer value1, Integer value2) {
            addCriterion("updator between", value1, value2, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotBetween(Integer value1, Integer value2) {
            addCriterion("updator not between", value1, value2, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdateNameIsNull() {
            addCriterion("update_name is null");
            return (Criteria) this;
        }

        public Criteria andUpdateNameIsNotNull() {
            addCriterion("update_name is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateNameEqualTo(String value) {
            addCriterion("update_name =", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameNotEqualTo(String value) {
            addCriterion("update_name <>", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameGreaterThan(String value) {
            addCriterion("update_name >", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameGreaterThanOrEqualTo(String value) {
            addCriterion("update_name >=", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameLessThan(String value) {
            addCriterion("update_name <", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameLessThanOrEqualTo(String value) {
            addCriterion("update_name <=", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameLike(String value) {
            addCriterion("update_name like", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameNotLike(String value) {
            addCriterion("update_name not like", value, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameIn(List<String> values) {
            addCriterion("update_name in", values, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameNotIn(List<String> values) {
            addCriterion("update_name not in", values, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameBetween(String value1, String value2) {
            addCriterion("update_name between", value1, value2, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateNameNotBetween(String value1, String value2) {
            addCriterion("update_name not between", value1, value2, "updateName");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNull() {
            addCriterion("update_date is null");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNotNull() {
            addCriterion("update_date is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateDateEqualTo(Date value) {
            addCriterion("update_date =", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotEqualTo(Date value) {
            addCriterion("update_date <>", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThan(Date value) {
            addCriterion("update_date >", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("update_date >=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThan(Date value) {
            addCriterion("update_date <", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThanOrEqualTo(Date value) {
            addCriterion("update_date <=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIn(List<Date> values) {
            addCriterion("update_date in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotIn(List<Date> values) {
            addCriterion("update_date not in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateBetween(Date value1, Date value2) {
            addCriterion("update_date between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotBetween(Date value1, Date value2) {
            addCriterion("update_date not between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andApproveItemIsNull() {
            addCriterion("approve_Item is null");
            return (Criteria) this;
        }

        public Criteria andApproveItemIsNotNull() {
            addCriterion("approve_Item is not null");
            return (Criteria) this;
        }

        public Criteria andApproveItemEqualTo(Integer value) {
            addCriterion("approve_Item =", value, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemNotEqualTo(Integer value) {
            addCriterion("approve_Item <>", value, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemGreaterThan(Integer value) {
            addCriterion("approve_Item >", value, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemGreaterThanOrEqualTo(Integer value) {
            addCriterion("approve_Item >=", value, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemLessThan(Integer value) {
            addCriterion("approve_Item <", value, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemLessThanOrEqualTo(Integer value) {
            addCriterion("approve_Item <=", value, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemIn(List<Integer> values) {
            addCriterion("approve_Item in", values, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemNotIn(List<Integer> values) {
            addCriterion("approve_Item not in", values, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemBetween(Integer value1, Integer value2) {
            addCriterion("approve_Item between", value1, value2, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveItemNotBetween(Integer value1, Integer value2) {
            addCriterion("approve_Item not between", value1, value2, "approveItem");
            return (Criteria) this;
        }

        public Criteria andApproveStatusIsNull() {
            addCriterion("approve_status is null");
            return (Criteria) this;
        }

        public Criteria andApproveStatusIsNotNull() {
            addCriterion("approve_status is not null");
            return (Criteria) this;
        }

        public Criteria andApproveStatusEqualTo(String value) {
            addCriterion("approve_status =", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusNotEqualTo(String value) {
            addCriterion("approve_status <>", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusGreaterThan(String value) {
            addCriterion("approve_status >", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusGreaterThanOrEqualTo(String value) {
            addCriterion("approve_status >=", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusLessThan(String value) {
            addCriterion("approve_status <", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusLessThanOrEqualTo(String value) {
            addCriterion("approve_status <=", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusLike(String value) {
            addCriterion("approve_status like", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusNotLike(String value) {
            addCriterion("approve_status not like", value, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusIn(List<String> values) {
            addCriterion("approve_status in", values, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusNotIn(List<String> values) {
            addCriterion("approve_status not in", values, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusBetween(String value1, String value2) {
            addCriterion("approve_status between", value1, value2, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveStatusNotBetween(String value1, String value2) {
            addCriterion("approve_status not between", value1, value2, "approveStatus");
            return (Criteria) this;
        }

        public Criteria andApproveLevelIsNull() {
            addCriterion("approve_level is null");
            return (Criteria) this;
        }

        public Criteria andApproveLevelIsNotNull() {
            addCriterion("approve_level is not null");
            return (Criteria) this;
        }

        public Criteria andApproveLevelEqualTo(Integer value) {
            addCriterion("approve_level =", value, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelNotEqualTo(Integer value) {
            addCriterion("approve_level <>", value, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelGreaterThan(Integer value) {
            addCriterion("approve_level >", value, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelGreaterThanOrEqualTo(Integer value) {
            addCriterion("approve_level >=", value, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelLessThan(Integer value) {
            addCriterion("approve_level <", value, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelLessThanOrEqualTo(Integer value) {
            addCriterion("approve_level <=", value, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelIn(List<Integer> values) {
            addCriterion("approve_level in", values, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelNotIn(List<Integer> values) {
            addCriterion("approve_level not in", values, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelBetween(Integer value1, Integer value2) {
            addCriterion("approve_level between", value1, value2, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andApproveLevelNotBetween(Integer value1, Integer value2) {
            addCriterion("approve_level not between", value1, value2, "approveLevel");
            return (Criteria) this;
        }

        public Criteria andAuditorIsNull() {
            addCriterion("auditor is null");
            return (Criteria) this;
        }

        public Criteria andAuditorIsNotNull() {
            addCriterion("auditor is not null");
            return (Criteria) this;
        }

        public Criteria andAuditorEqualTo(Integer value) {
            addCriterion("auditor =", value, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorNotEqualTo(Integer value) {
            addCriterion("auditor <>", value, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorGreaterThan(Integer value) {
            addCriterion("auditor >", value, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorGreaterThanOrEqualTo(Integer value) {
            addCriterion("auditor >=", value, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorLessThan(Integer value) {
            addCriterion("auditor <", value, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorLessThanOrEqualTo(Integer value) {
            addCriterion("auditor <=", value, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorIn(List<Integer> values) {
            addCriterion("auditor in", values, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorNotIn(List<Integer> values) {
            addCriterion("auditor not in", values, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorBetween(Integer value1, Integer value2) {
            addCriterion("auditor between", value1, value2, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorNotBetween(Integer value1, Integer value2) {
            addCriterion("auditor not between", value1, value2, "auditor");
            return (Criteria) this;
        }

        public Criteria andAuditorNameIsNull() {
            addCriterion("auditor_name is null");
            return (Criteria) this;
        }

        public Criteria andAuditorNameIsNotNull() {
            addCriterion("auditor_name is not null");
            return (Criteria) this;
        }

        public Criteria andAuditorNameEqualTo(String value) {
            addCriterion("auditor_name =", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameNotEqualTo(String value) {
            addCriterion("auditor_name <>", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameGreaterThan(String value) {
            addCriterion("auditor_name >", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameGreaterThanOrEqualTo(String value) {
            addCriterion("auditor_name >=", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameLessThan(String value) {
            addCriterion("auditor_name <", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameLessThanOrEqualTo(String value) {
            addCriterion("auditor_name <=", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameLike(String value) {
            addCriterion("auditor_name like", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameNotLike(String value) {
            addCriterion("auditor_name not like", value, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameIn(List<String> values) {
            addCriterion("auditor_name in", values, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameNotIn(List<String> values) {
            addCriterion("auditor_name not in", values, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameBetween(String value1, String value2) {
            addCriterion("auditor_name between", value1, value2, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditorNameNotBetween(String value1, String value2) {
            addCriterion("auditor_name not between", value1, value2, "auditorName");
            return (Criteria) this;
        }

        public Criteria andAuditDateIsNull() {
            addCriterion("audit_date is null");
            return (Criteria) this;
        }

        public Criteria andAuditDateIsNotNull() {
            addCriterion("audit_date is not null");
            return (Criteria) this;
        }

        public Criteria andAuditDateEqualTo(Date value) {
            addCriterion("audit_date =", value, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateNotEqualTo(Date value) {
            addCriterion("audit_date <>", value, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateGreaterThan(Date value) {
            addCriterion("audit_date >", value, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateGreaterThanOrEqualTo(Date value) {
            addCriterion("audit_date >=", value, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateLessThan(Date value) {
            addCriterion("audit_date <", value, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateLessThanOrEqualTo(Date value) {
            addCriterion("audit_date <=", value, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateIn(List<Date> values) {
            addCriterion("audit_date in", values, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateNotIn(List<Date> values) {
            addCriterion("audit_date not in", values, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateBetween(Date value1, Date value2) {
            addCriterion("audit_date between", value1, value2, "auditDate");
            return (Criteria) this;
        }

        public Criteria andAuditDateNotBetween(Date value1, Date value2) {
            addCriterion("audit_date not between", value1, value2, "auditDate");
            return (Criteria) this;
        }

        public Criteria andOperationIsNull() {
            addCriterion("operation is null");
            return (Criteria) this;
        }

        public Criteria andOperationIsNotNull() {
            addCriterion("operation is not null");
            return (Criteria) this;
        }

        public Criteria andOperationEqualTo(String value) {
            addCriterion("operation =", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationNotEqualTo(String value) {
            addCriterion("operation <>", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationGreaterThan(String value) {
            addCriterion("operation >", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationGreaterThanOrEqualTo(String value) {
            addCriterion("operation >=", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationLessThan(String value) {
            addCriterion("operation <", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationLessThanOrEqualTo(String value) {
            addCriterion("operation <=", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationLike(String value) {
            addCriterion("operation like", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationNotLike(String value) {
            addCriterion("operation not like", value, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationIn(List<String> values) {
            addCriterion("operation in", values, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationNotIn(List<String> values) {
            addCriterion("operation not in", values, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationBetween(String value1, String value2) {
            addCriterion("operation between", value1, value2, "operation");
            return (Criteria) this;
        }

        public Criteria andOperationNotBetween(String value1, String value2) {
            addCriterion("operation not between", value1, value2, "operation");
            return (Criteria) this;
        }

        public Criteria andApplyMemoIsNull() {
            addCriterion("apply_memo is null");
            return (Criteria) this;
        }

        public Criteria andApplyMemoIsNotNull() {
            addCriterion("apply_memo is not null");
            return (Criteria) this;
        }

        public Criteria andApplyMemoEqualTo(String value) {
            addCriterion("apply_memo =", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoNotEqualTo(String value) {
            addCriterion("apply_memo <>", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoGreaterThan(String value) {
            addCriterion("apply_memo >", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoGreaterThanOrEqualTo(String value) {
            addCriterion("apply_memo >=", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoLessThan(String value) {
            addCriterion("apply_memo <", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoLessThanOrEqualTo(String value) {
            addCriterion("apply_memo <=", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoLike(String value) {
            addCriterion("apply_memo like", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoNotLike(String value) {
            addCriterion("apply_memo not like", value, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoIn(List<String> values) {
            addCriterion("apply_memo in", values, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoNotIn(List<String> values) {
            addCriterion("apply_memo not in", values, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoBetween(String value1, String value2) {
            addCriterion("apply_memo between", value1, value2, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApplyMemoNotBetween(String value1, String value2) {
            addCriterion("apply_memo not between", value1, value2, "applyMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoIsNull() {
            addCriterion("approve_memo is null");
            return (Criteria) this;
        }

        public Criteria andApproveMemoIsNotNull() {
            addCriterion("approve_memo is not null");
            return (Criteria) this;
        }

        public Criteria andApproveMemoEqualTo(String value) {
            addCriterion("approve_memo =", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoNotEqualTo(String value) {
            addCriterion("approve_memo <>", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoGreaterThan(String value) {
            addCriterion("approve_memo >", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoGreaterThanOrEqualTo(String value) {
            addCriterion("approve_memo >=", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoLessThan(String value) {
            addCriterion("approve_memo <", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoLessThanOrEqualTo(String value) {
            addCriterion("approve_memo <=", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoLike(String value) {
            addCriterion("approve_memo like", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoNotLike(String value) {
            addCriterion("approve_memo not like", value, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoIn(List<String> values) {
            addCriterion("approve_memo in", values, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoNotIn(List<String> values) {
            addCriterion("approve_memo not in", values, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoBetween(String value1, String value2) {
            addCriterion("approve_memo between", value1, value2, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andApproveMemoNotBetween(String value1, String value2) {
            addCriterion("approve_memo not between", value1, value2, "approveMemo");
            return (Criteria) this;
        }

        public Criteria andMessageIdIsNull() {
            addCriterion("message_id is null");
            return (Criteria) this;
        }

        public Criteria andMessageIdIsNotNull() {
            addCriterion("message_id is not null");
            return (Criteria) this;
        }

        public Criteria andMessageIdEqualTo(Integer value) {
            addCriterion("message_id =", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotEqualTo(Integer value) {
            addCriterion("message_id <>", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdGreaterThan(Integer value) {
            addCriterion("message_id >", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("message_id >=", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdLessThan(Integer value) {
            addCriterion("message_id <", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdLessThanOrEqualTo(Integer value) {
            addCriterion("message_id <=", value, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdIn(List<Integer> values) {
            addCriterion("message_id in", values, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotIn(List<Integer> values) {
            addCriterion("message_id not in", values, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdBetween(Integer value1, Integer value2) {
            addCriterion("message_id between", value1, value2, "messageId");
            return (Criteria) this;
        }

        public Criteria andMessageIdNotBetween(Integer value1, Integer value2) {
            addCriterion("message_id not between", value1, value2, "messageId");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityIsNull() {
            addCriterion("assembly_quantity is null");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityIsNotNull() {
            addCriterion("assembly_quantity is not null");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityEqualTo(Integer value) {
            addCriterion("assembly_quantity =", value, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityNotEqualTo(Integer value) {
            addCriterion("assembly_quantity <>", value, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityGreaterThan(Integer value) {
            addCriterion("assembly_quantity >", value, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityGreaterThanOrEqualTo(Integer value) {
            addCriterion("assembly_quantity >=", value, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityLessThan(Integer value) {
            addCriterion("assembly_quantity <", value, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityLessThanOrEqualTo(Integer value) {
            addCriterion("assembly_quantity <=", value, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityIn(List<Integer> values) {
            addCriterion("assembly_quantity in", values, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityNotIn(List<Integer> values) {
            addCriterion("assembly_quantity not in", values, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityBetween(Integer value1, Integer value2) {
            addCriterion("assembly_quantity between", value1, value2, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andAssemblyQuantityNotBetween(Integer value1, Integer value2) {
            addCriterion("assembly_quantity not between", value1, value2, "assemblyQuantity");
            return (Criteria) this;
        }

        public Criteria andOidIsNull() {
            addCriterion("oid is null");
            return (Criteria) this;
        }

        public Criteria andOidIsNotNull() {
            addCriterion("oid is not null");
            return (Criteria) this;
        }

        public Criteria andOidEqualTo(Integer value) {
            addCriterion("oid =", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidNotEqualTo(Integer value) {
            addCriterion("oid <>", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidGreaterThan(Integer value) {
            addCriterion("oid >", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidGreaterThanOrEqualTo(Integer value) {
            addCriterion("oid >=", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidLessThan(Integer value) {
            addCriterion("oid <", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidLessThanOrEqualTo(Integer value) {
            addCriterion("oid <=", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidIn(List<Integer> values) {
            addCriterion("oid in", values, "oid");
            return (Criteria) this;
        }

        public Criteria andOidNotIn(List<Integer> values) {
            addCriterion("oid not in", values, "oid");
            return (Criteria) this;
        }

        public Criteria andOidBetween(Integer value1, Integer value2) {
            addCriterion("oid between", value1, value2, "oid");
            return (Criteria) this;
        }

        public Criteria andOidNotBetween(Integer value1, Integer value2) {
            addCriterion("oid not between", value1, value2, "oid");
            return (Criteria) this;
        }

        public Criteria andStuffIsNull() {
            addCriterion("stuff is null");
            return (Criteria) this;
        }

        public Criteria andStuffIsNotNull() {
            addCriterion("stuff is not null");
            return (Criteria) this;
        }

        public Criteria andStuffEqualTo(String value) {
            addCriterion("stuff =", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffNotEqualTo(String value) {
            addCriterion("stuff <>", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffGreaterThan(String value) {
            addCriterion("stuff >", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffGreaterThanOrEqualTo(String value) {
            addCriterion("stuff >=", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffLessThan(String value) {
            addCriterion("stuff <", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffLessThanOrEqualTo(String value) {
            addCriterion("stuff <=", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffLike(String value) {
            addCriterion("stuff like", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffNotLike(String value) {
            addCriterion("stuff not like", value, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffIn(List<String> values) {
            addCriterion("stuff in", values, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffNotIn(List<String> values) {
            addCriterion("stuff not in", values, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffBetween(String value1, String value2) {
            addCriterion("stuff between", value1, value2, "stuff");
            return (Criteria) this;
        }

        public Criteria andStuffNotBetween(String value1, String value2) {
            addCriterion("stuff not between", value1, value2, "stuff");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}